SBRK

#include <malloc.h>    требуется только для объявления функции
char *sbrk(incr);
int incr;              количество   добавляемых    или вычитаемых  байтов

Описание.
Функция sbrk переустанавливает значение разрыва для вызванного процесса. Значением разрыва является адрес первого байта захваченной памяти. Функция sbrk добавляет incr байты к значению разрыва; соответственно этому устанавливается размер захватываемой памяти.

Замечание.
Incr может быть отрицательным, тогда количество захваченной памяти уменьшается на incr байтов.

Возвращаемое значение.
Функция sbrk возвращает старое значение разрыва. Возвращаемое значение -1 указывает на ошибку и errno устанавливается в ENOMEN , указывая, что осталось недостаточно памяти.

Замечание.
В компактной, большой и huge-моделях программ функция sbrk отсутствует и возвращает значение -1. В больших моделях программ для захвата используется функция malloc.

Пример:

            #include <malloc.h>
            #include <stdio.h>
            
            /* захватывает память в 100 байт */
            
            char *alloc;
            alloc=sbrk(100);
            .
            .
            .
            
            /* уменьшает захваченную память до 60 байт  */
            
            if (alloc != (char)-1)
                   sbrk(-40);
Hosted by uCoz